home *** CD-ROM | disk | FTP | other *** search
/ 1,000 Game Levels 2 / 1,000 Game Levels 2.iso / DOSRPG / V1_1CUBE.ZIP / CUBE.DOC next >
Text File  |  1991-10-28  |  17KB  |  313 lines

  1.                           INTRODUCTION
  2.  
  3.      Some years ago, a type of puzzle which is in the shape of a
  4. cube became enormously popular across the country.  The cube is
  5. named after its inventor, a Hungarian mathematician named "Rubik". 
  6. It is a cube consisting of a number of smaller cubes.  Each of the
  7. six square faces of the cube is broken up into nine smaller
  8. squares.  The six faces are each a different color.
  9.  
  10.      The cube can be thought of as being broken up along each of
  11. its three axes into three separate "slices".  The separations
  12. between the slices intersect, and conceptually separate the
  13. complete cube into 27 smaller cubes.  The cube itself is not
  14. designed to separate, and though it gives the appearance of being
  15. composed of a collection of smaller cubes, in reality there is
  16. only the complete cube.
  17.  
  18.      The cube can be mixed by turning any of the faces around its
  19. corresponding axis, or by turning one of the "center slices" in
  20. relation to the two faces between which it is sandwiched.  Once
  21. the cube becomes sufficiently "jumbled", it is virtually
  22. impossible to solve it without having an orderly method by which
  23. it may be solved.  The trouble is that such a solution is far from
  24. being intuitively obvious.  Many people bought the cube and were
  25. unable to solve it, and just threw it aside.  Chances are that you
  26. might have one in your closet which you have been unable to solve. 
  27. This program will enable you to solve it.
  28.  
  29.      A caveat: if a cube has at some point been disassembled and
  30. then reassembled indiscriminately, there is a 91.7% chance that it
  31. is out of alignment and will not solve.  Moreover, if the stickers
  32. on the face have been taken off and re-pasted on indiscriminately,
  33. the cube is almost surely even more than simply misaligned -- it
  34. is likely that even with realignment the cube will not solve.
  35.  
  36.  
  37.                            THE PROGRAM
  38.  
  39.      CUBE.EXE (and the accompanying programs) is a program which
  40. is capable of solving any cube which has been genuinely jumbled
  41. (i.e., only by turning the faces and, generally, not by
  42. disassembly).  There are actually four programs included in this
  43. package.  CUBE is the standard program which requires a color
  44. monitor capable of displaying at least 16 colors.
  45.  
  46.      RCUBE.EXE is a version of the same program which is designed
  47. to run on systems which have monitors that can display only 8
  48. colors.  These are low-cost monitors of CGA resolution.  VGA, EGA,
  49. and even most CGA color monitors are capable of displaying at
  50. least 16 colors.  In the RCUBE implementation, yellow is mapped as
  51. purple (or magenta).  If the yellow and the orange faces appear
  52. identical when you run CUBE, then try RCUBE.
  53.  
  54.      MCUBE.EXE is a version designed to run on monochrome
  55. monitors.  This is admittedly a less than optimal implementation. 
  56. "Colors" are rendered as letters, which represent corresponding
  57. colors.  "B" is blue, "Y" is yellow, etc.
  58.  
  59.      SCUBE.EXE is also a monochrome version, but it is for systems
  60. where a monochrome monitor is attached to a display card which is
  61. recognized as a color card by the system hardware.  If you have a
  62. monochrome monitor and MCUBE does not work for you, SCUBE should
  63. work instead.
  64.  
  65.      These programs all run in text mode.  Mouse support is
  66. included without any necessary flags, command line arguments, or
  67. an installation procedure.  If a mouse is present (and its driver
  68. is loaded), the mouse is automatically detected.  A saved cube can
  69. be specified on the command line when the program is run, and this
  70. cube will be loaded into the program's memory.  If there is a
  71. problem reading this saved file, a small message will be displayed
  72. on the title screen.
  73.  
  74.  
  75.                            THE SCREEN
  76.  
  77.      When this program is executed, a representation of a cube
  78. "unfolded" is displayed on the screen.  Think of the cube as a
  79. box.  The bottom of the box is cut out and set to the right.  You
  80. are looking at it from the inside out.  (Or, alternately, think of
  81. it as if you are actually looking at a reflection of the back side
  82. of the cube in a mirror.)  The top of box is in the center of the
  83. screen, and the sides are "folded out" as if the edges of the
  84. sides of the box were cut.
  85.  
  86.      Any of the faces or slices of the cube can be turned, and
  87. this movement will be reflected on the screen.  But in order to
  88. have user interface where the user can manipulate the screen, it
  89. is necessary to have a method by which we can refer to particular
  90. faces.
  91.  
  92.      At the top left of the screen is a three-dimensional left-
  93. handed X,Y,Z coordinate axis.  The X axis runs horizontally with
  94. positives to the right (as usual), the Y axis runs vertically with
  95. positives above the X axis, and the Z axis runs perpendicular to
  96. the XY plane, with positives to the front of it (i.e, on the same
  97. side as the user).  On color screens the axis labels (X+, X-,
  98. etc.) are shown in the color of the center square of the
  99. corresponding face.
  100.  
  101.      Three slices of the cube turn around each of the three axes. 
  102. The X- slice is to the left of the center face on the screen, and
  103. comprises the left face.  The X+ slice is to the right of the
  104. center face, and comprises the right face.  The Y+ slice is above
  105. the center face, and comprises the top face.  The Y- slice is
  106. below the center face, and comprises the bottom face.  The Z+
  107. slice is the center face on the screen, and comprises the front
  108. face.  The Z- slice is far to the right of rest of the cube, and
  109. comprises the rear face.
  110.  
  111.      In addition, there are three other slices which sit between
  112. the faces.  We can call them the X0 slice, which is between the
  113. left and right faces; the Y0 slice, which is between the top and
  114. bottom faces; and the Z0 slice, which is between the front and
  115. rear faces.
  116.  
  117.  
  118.                           THE KEYBOARD
  119.  
  120.      The keyboard is divided into several sections.  The row of
  121. numbers, from 1 to 9, will turn the entire cube varying degrees
  122. around one of the axes.  The row of letters from Q to O will turn
  123. the positive face of one of the three axes varying degrees.  The
  124. row of letters from A to L will turn the center slice of one of
  125. the three axes varying degrees.  The row of letters from Z to M,
  126. and also the comma and period, will turn the negative face of one
  127. of the three axes varying degrees.
  128.  
  129.      The keys can be divided into three sections corresponding to
  130. the X, the Y, and the Z slices.  The 1 key, the 2 key, and the 3
  131. key, and the letter keys which fall directly under these keys
  132. control the 'X' slices.  The 4 key, the 5 key, and the 6 key, and
  133. the letter keys which fall directly under these keys control the
  134. 'Y' slices.  The 7 key, the 8 key, and the 9 key, and the letter
  135. keys which fall directly under these keys control the 'Z' slices.
  136.  
  137.      The keys under the 1 key, the 4 key, and the 7 key, will turn
  138. its corresponding slice one quarter turn counterclockwise, and the
  139. number key will turn the entire cube one quarter turn
  140. counterclockwise around its corresponding axis.  The keys under
  141. the 2 key, the 5 key, and the 8 key, will turn its corresponding
  142. slice one half turn, and the number key will turn the entire cube
  143. one half turn around its corresponding axis.  The keys under the 3
  144. key, the 6 key, and the 9 key, will turn its corresponding slice
  145. one quarter turn clockwise, and the number key will turn the
  146. entire cube one quarter turn clockwise around its corresponding
  147. axis.  "Clockwise" and "counterclockwise" for the slices of the
  148. cube in this context are determined by their relation to the XYZ
  149. "axes".
  150.  
  151.      You will notice that there are columns of letters to the left
  152. of the left face and bottom face, and also a row of letters under
  153. the bottom slice.  These correspond to command which will turn
  154. that slice.  By highlighting these commands with the mouse cursor
  155. and hitting the left mouse button, you can execute these commands. 
  156. Actually, there is no "location" check done on the mouse cursor
  157. when it is above the last line.  When the left button is clicked
  158. above ANY letter on the screen -- except for those on the bottom
  159. row (the command menu) -- the corresponding command will be
  160. executed.
  161.  
  162.      At the top right of the screen are three lines of text that
  163. indicate which numbers will turn the cube around which axis.  The
  164. message on the bottom right of the screen differs somewhat between
  165. the color and monochrome versions.  In the color version, the left
  166. part shows the colors of the aforementioned columns and row of
  167. letters, and the direction that they will turn their corresponding
  168. slice of the cube.  The right part shows, again, the color of the
  169. center square of each corresponding face according to its axis. 
  170. In the monochrome versions, the message on the bottom right spells
  171. out the color of the center square of each corresponding face
  172. according to its axis.
  173.  
  174.      The faces are referred to by the color of their center
  175. square.  The center squares always remain in the same position in
  176. relation to each other.  For example, when we say "the yellow
  177. face", we are referring to the face whose center square is yellow.
  178.  
  179.  
  180.                           THE MENU LINE
  181.  
  182.      The last line at the bottom of the screen is the menu line. 
  183. There are 10 menu choices which correspond to the first ten
  184. "Function" keys (F1 to F10).  These choices can be selected either
  185. by pressing the corresponding function key, or (if a mouse is
  186. present) by pressing the left mouse button while bring the mouse
  187. cursor on the appropriate choice.
  188.  
  189. F1:  SOLVE -- This choice will solve the cube (if indeed it is
  190.      unsolved).  The moves can be displayed "instantly" (in
  191.      reality it does take a finite amount of time to solve the
  192.      cube), with a 0.5 second delay between moves, or displaying
  193.      instructions on the next move to be made, asking for a key
  194.      press before the next move.  Should the cube be found to be
  195.      out of alignment, a message will be displayed accompanied by
  196.      an obnoxious beep, asking for a key press.  After the key
  197.      press, a fully solved cube will be displayed.
  198.  
  199.      When the cube is solved, a message to this effect will be
  200.      displayed, asking for a key press.  If the "Escape" key is
  201.      pressed while the cube is being solved or in response to this
  202.      message, you will be returned to the original unsolved cube. 
  203.      Unless you pressed the "Escape" key, you will additionally,
  204.      be asked for filenames for "instruction" and "script" files
  205.      if you have turned this on.  The menu line is turned off
  206.      while the cube is being solved.
  207.  
  208. F2:  SCRIPT -- This choice will run a "script" file.  This file
  209.      consists of a sequence of moves that has been previously
  210.      saved.  Additionally, any file can be run as a "script" file
  211.      to randomly jumble the cube.  There is a limit of 1024
  212.      characters for a script file.  If you specify a file that is
  213.      longer than 1024 bytes, only the first 1024 bytes will be
  214.      read.
  215.  
  216.      Instruction files can be saved while running a script, and
  217.      the script can be run with or without a delay, or displaying
  218.      instructions of the next move on the screen.  No script file
  219.      can be made, and if the switch indicating that one is to be
  220.      made is turned on, it will be turned off.  If there are any
  221.      characters in the script buffer, you will be asked to name
  222.      the script file about to be saved.  (Pressing the "Escape"
  223.      key cancels the pending save.)  You may press the "Escape"
  224.      key at any time to abort the script while it is running, up
  225.      to (and including) the time when the message indicating the
  226.      script has finished is displayed.  Pressing the "Escape" key
  227.      will return to the previous cube before the script was run.
  228.  
  229. F3:  SVSCR -- "Save Script".  This key controls a "toggle" bit,
  230.      indicating whether a script will be saved.  Initially, this
  231.      switch is off, and is indicated by a minus sign.  If it is
  232.      switched on, a plus sign takes the place of the minus sign. 
  233.      If it is switched off while there are characters in the
  234.      script buffer, you will be prompted for a filename in which
  235.      to store this characters as a script file.  Pressing the
  236.      "Escape" key will cancel the save operation.
  237.  
  238. F4:  LOAD -- Loads file storing the state of the cube that has
  239.      been previously saved.  You will be prompted for a filename. 
  240.      Pressing the "Escape" key will cancel the load operation.  If
  241.      there is a problem reading the specified file, an error
  242.      message will appear.  Only files saved with the SAVE command
  243.      can be reloaded.  Script files or instruction files are not
  244.      saved cube files.
  245.  
  246. F5:  SAVE -- Save the current state of the cube to a file.  You
  247.      will be prompted for a file name.  Pressing the "Escape" key
  248.      cancels the save operation.
  249.  
  250. F6:  SHOW -- Show the instructions to the screen for moves that
  251.      are made either in solving the cube or in following a script
  252.      file.  A minus sign after the word indicates this option is
  253.      off, and a plus sign indicates that it is on.  Instructions
  254.      will appear at the bottom of the screen, and you will be
  255.      prompted to press a key.  Pressing the "Escape" key will
  256.      abort the current operation and return the cube to the state
  257.      it was in before that operation was started.
  258.  
  259. F7:  FILL -- "Fill" the faces to correspond to an existing cube. 
  260.      This is the procedure you will need to use in order to solve
  261.      a cube that you have.  If you have a mouse, a new menu line
  262.      will appear at the bottom of the screen indicating the
  263.      different color choices.  (You will notice that the mouse
  264.      cursor is now confined to the menu line.)  The current square
  265.      to be filled will be blinking, and as each square is filled,
  266.      the blinking square advances.  You may choose the color for
  267.      this square either by hitting its first letter on the
  268.      keyboard, or by bringing the mouse cursor to the appropriate
  269.      color and pressing the left button.
  270.  
  271.      The squares are filled only from the center face, and the
  272.      cube rotates as each face is filled.  You may keep track of
  273.      this by lining up the center squares of each filled face with
  274.      your own cube.  (Please bear in mind that the back face --
  275.      the one at the far right of the screen -- represents a
  276.      reflection of that face, i.e., as it would look in a mirror.) 
  277.      If you make a mistake, you can back up by pressing the
  278.      backspace key.  (This is also the "REDO" selection on the
  279.      mouse menu.)  If you hit backspace at the first square to be
  280.      fill, you will be returned to the previous cube before you
  281.      hit the "FILL" command.
  282.  
  283.      When the cube is completely filled, a message will be
  284.      displayed asking for a key press.  Hitting backspace will
  285.      back up and let you change the last square entered.  You may
  286.      backspace all the way back through the fill procedure to the
  287.      state of the cube before you hit the fill command.  Hitting
  288.      the "Escape" key at any time up to and including the key
  289.      press prompt will return you to the previous cube.  (Mouse
  290.      users will also note this command on the menu line.)
  291.  
  292. F8:  FILE -- Save the instructions for the sequence of moves that
  293.      was made to a file.  A minus sign after the word indicates
  294.      this option is off, and a plus sign indicates that it is on. 
  295.      The sequence of moves can either be the operation that solves
  296.      the cube, a script operation, or a sequence of moves entered
  297.      manually through the keyboard or mouse.  You are prompted for
  298.      a filename to save the instructions in when an operation
  299.      (solve or script) ends, when you have entered moves manually
  300.      with this option on and you initiate either the solution or
  301.      the script operation, when you toggle this option off and
  302.      there are instructions stored in the instruction buffer, or
  303.      when the instruction buffer fills up.  Hitting the "Escape"
  304.      key at the filename prompt cancels the save.  The instruction
  305.      buffer is about 15K bytes in size.
  306.  
  307. F9:  INSTNT/DELAY -- This key toggles between these two choices. 
  308.      It switches on or off a one-half second delay between
  309.      successive moves.  This only has meaning in the solution and
  310.      script operations when the "show" option is turned off.
  311.  
  312. F10: EXIT -- Self explanatory.
  313.